// 定义销售报价单的整体结构接口
export interface SalesQuotation {
  salesQuotationId: number; // 销售报价单ID
  quotationDate: any; // 报价日期
  customerID: Number; // 客户ID,
  customerName: string; // 客户名称
  customerContactID: Number; // 客户联系人ID
  customerShortName: string; // 客户简称
  customerContact: string; // 客户联系人
  contactInfo: string; // 联系信息
  salesmanName: string; // 销售员名称
  department: string; // 部门
  currency: string; // 货币类型
  remark: string; // 备注
  quotationNum: string; // 报价单号
  validDate: Date; // 有效日期
  status: string; // 是否批准
  isApprovedPassed: boolean; // 是否通过批准
  isClosed: boolean; // 是否关闭
  creationDate: Date; // 创建日期
  creator: string; // 创建者
  files: string[]; // 文件列表
  fileRemarks: string[]; // 文件备注
  totalQuantity: number; // 总数量
  totalAmountWithTax: number; // 含税总金额
  totalTaxAmount: number; // 总税额
  totalDiscountedAmountWithTax: number; // 折扣后含税总金额
  totalDiscountedTaxAmount: number; // 折扣后总税额
  quotationItems: QuotationItem[]; // 报价单条目列表
}

// 定义报价单条目接口
export interface QuotationItem {
  quotationItemId: number; // 报价单条目ID
  quotationItemPartId: number; // 报价单零件ID
  salesQuotationId: number; // 销售报价单ID
  partNum: string; // 零件编号
  pictureUrl: any; // 图片URL
  partName: any; // 零件名称
  partType: any; // 零件类型
  description: any; // 描述
  quantity: number; // 数量
  partUOM: any; // 零件单位
  priceWithTax: any; // 含税价格
  priceWithoutTax: number; // 不含税价格
  taxRate: number; // 税率
  discount: number; // 折扣
  discountedPriceWithTax: number; // 折扣后含税价格
  amountWithTax: number; // 含税金额
  amountWithoutTax: number; // 不含税金额
  taxAmount: number; // 税额
  discountedAmountWithTax: number; // 折扣后含税金额
  discountedAmountWithoutTax: number; // 折扣后不含税金额
  discountedTaxAmount: number; // 折扣后税额
  remark: string; // 备注
  transQuantity: number;// 转换为销售订单的数量
  fujian: string; // 附件
}

/**
 * 销售订单接口定义
 */
export interface SaleOrder {
  saleOrderId: number; // 销售订单ID
  quotationNum: string; // 报价单号
  saleOrderNum: string; // 销售订单号
  orderDate: Date; // 订单日期
  customerOrderNum: string; // 客户订单号
  customerName: string; // 客户名称
  deliveryDate: Date; // 交货日期
  status: string; // 是否审核
  isClosed: boolean; // 是否关闭
  partTotalQuantity: number; // 零件总数量
  partShippedQuantity: number; // 已发货数量
  partUnshippedQuantity: number; // 未发货数量
  advancePaymentAmount: number; // 预付款金额
  creationDate: Date; // 创建日期
  creator: string; // 创建者
  orderType: string; // 订单类型
  company: string; // 公司
  customerShortName: string; // 客户简称
  customerContact: string; // 客户联系人
  contactInfo: string; // 联系信息
  salesman: string; // 销售员
  department: string; // 部门
  settlementCurrency: string; // 结算货币
  settlementMethod: string; // 结算方式
  paymentTerm: string; // 付款条件
  deliveryAddress: string; // 交货地址
  remark: string; // 备注
  totalQuantity: number; // 总数量
  totalAmountWithTax: number; // 含税总金额
  totalTaxAmount: number; // 总税额
  totalDiscountAmountWithTax: number; // 折扣后含税总金额
  totalDiscountTaxAmount: number; // 折扣后总税额
  files: string[]; // 文件列表
  fileRemarks: string[]; // 文件备注
  saleOrderParts: SaleOrderPart[]; // 销售订单零件列表
  customerContactID: number; // 客户联系人ID
  customerID: number; // 客户ID
}

/**
 * 销售订单零件信息接口定义
 */
export interface SaleOrderPart {
  saleOrderPartId: number; // 销售订单零件ID
  saleOrderPartPartId: number; // 销售订单零件零件ID
  saleOrderNum: string; // 销售订单号
  quotationItemId: number; // 报价项ID
  partNum: string; // 零件编号
  image: string; // 图片
  attachment: string; // 附件
  partName: string; // 零件名称
  partType: string; // 零件类型
  description: string; // 描述
  plannedShipmentDate: Date; // 计划发货日期
  salesQuantity: number; // 销售数量
  realTimeInventory: number; // 实时库存
  sourceQuotationNum: string; // 源报价单号
  quantity: number; // 数量
  partUOM: string; // 零件单位
  priceWithTax: number; // 含税价格
  priceWithoutTax: number; // 不含税价格
  taxRate: number; // 税率
  discount: number; // 折扣
  discountPriceWithTax: number; // 折扣后含税价格
  amountWithTax: number; // 含税金额
  amountWithoutTax: number; // 不含税金额
  taxAmount: number; // 税额
  discountAmountWithTax: number; // 折扣后含税金额
  discountAmountWithoutTax: number; // 折扣后不含税金额
  discountTaxAmount: number; // 折扣税额
  partRemark: string; // 零件备注
  saleOrderId: number; // 销售订单ID
  produceQuantity: number; // 生产数量
  soldQuantity: number; // 已售数量
  unSoldQuantity: number; // 未售数量
}
export interface SaleDeliverPart {
  saleDeliverPartPartId: number; // 零件ID
  partNum: string; // 零件编号
  scheduledDeliverTime: Date; // 预定发货时间
  scheduledDeliverAmount: number; // 预定发货数量
  saleDeliverPartWarehouseId: number; // 仓库ID
  saleDeliverPartPositionId: number; // 仓位ID
  priceWithTax: number; // 含税价格
  priceWithoutTax: number; // 不含税价格
  taxRate: number; // 税率
  discount: number; // 折扣
  discountPriceWithTax: number; // 折扣后含税价格
  amountWithTax: number; // 含税金额
  amountWithoutTax: number; // 不含税金额
  taxAmount: number; // 税额
  discountAmountWithTax: number; // 折扣后含税金额
  discountAmountWithoutTax: number; // 折扣后不含税金额
  discountTaxAmount: number; // 折扣后税额
  note: string; // 备注
  saleOrderNum: string; // 销售订单编号
  saleOrderPartId: number; // 销售订单零件ID
}
export interface SaleDeliver {
  saleDeliverId: number; // 销售发货单ID
  orderDate: Date; // 订单日期
  saleDeliverNum: string; // 销售发货单号
  saleDeliverCustomerId: number; // 客户ID
  chineseName: string; // 客户中文名
  customerAbbreviation: string; // 客户简称
  company: string; // 公司名
  customerContactName: string; // 客户联系人姓名
  customerContactPhone: string; // 客户联系电话
  salesmanName: string; // 销售员姓名
  departmentName: string; // 部门名称
  scheduledDeliverTime: Date; // 预定发货时间
  deliverType: string; // 发货类型
  deliveryAddress: string; // 发货地址
  settlementMethodName: string; // 结算方式名称
  currencyName: string; // 货币名称
  collectionPeriodName: string; // 收款期限名称
  isInvoice: boolean; // 是否开发票
  note: string; // 备注
  isPush: boolean; // 是否推送
  isDeliver: boolean; // 是否发货
  isReceive: boolean; // 是否收货
  isCancellation: boolean; // 是否取消
  isPrint: boolean; // 是否打印
  createTime: Date; // 创建时间
  createUser: string; // 创建用户
  amount: number; // 金额
  taxAmount: number; // 税额
  tax: number; // 税率
  unTaxAmount: number; // 不含税金额
  taxDiscountAmount: number; // 税后折扣金额
  taxDiscount: number; // 税后折扣
  discountAmount: number; // 折扣金额
  logisticsCompanyCode?: string; // 物流公司编码
  logisticsCompanyName?: string; // 物流公司名称
  logisticsTrackingNum?: string; // 物流单号
  logisticsContactName?: string; // 物流联系人
  logisticsContactPhone?: string; // 物流联系人电话
  logisticsFee?: number; // 物流费用
  files: string[]; // 文件列表
  fileRemarks: string[]; // 文件备注
  saleDeliverParts: SaleDeliverPart[]; // 销售发货单零件列表
}
export interface SaleReturn {
  orderDate: Date;
  saleReturnNum: string;
  saleReturnCustomerId: number;
  company: string;
  customerContactName: string;
  chineseName: string;
  customerAbbreviation: string;
  customerContactPhone: string;
  saleReturnSalesmanId: number;
  salesmanName: string;
  saleReturnDepartmentId: number;
  departmentName: string;
  scheduledReturnTime: Date;
  returnType: string;
  currencyName: string;
  settlementMethodName: string;
  isWriteOff: boolean;
  note: string;
  status: string;
  isReturn: boolean;
  isReceive: boolean;
  isCancellation: boolean;
  isPrint: boolean;
  createTime: any;
  createUser: string;
  returnedAmount: number;
  unReturnedAmount: number;
  returnAmount: number;
  taxAmount: number;
  tax: number;
  unTaxAmount: number;
  taxDiscountAmount: number;
  taxDiscount: number;
  discountAmount: number;
  file: string[];
  fileNote: string[];
  saleReturnParts: SaleReturnPart[];
}

export interface SaleReturnPart {
  saleReturnPartPartId: number;
  partNum: string;
  partName: string;
  scheduledReturnTime: Date;
  scheduledReturnAmount: number;
  returnedAmount: number;
  returningAmount: number;
  saleReturnPartWarehouseId: number;
  warehouseName: string;
  saleReturnPartPositionId: number;
  positionName: string;
  priceWithTax: number;
  priceWithoutTax: number;
  taxRate: number;
  discount: number;
  discountPriceWithTax: number;
  amountWithTax: number;
  amountWithoutTax: number;
  taxAmount: number;
  discountAmountWithTax: number;
  discountAmountWithoutTax: number;
  discountTaxAmount: number;
  note: string;
  saleOrderNum: string;
  saleDeliverNum: string;
  saleDeliverPartId: number;
  partType: string;
  partUOM: string;
  image: string;
  description: string;
}

// 销售结算单接口
export interface SaleSettlement {
  saleSettlementId: number; // 销售结算单ID
  settlementNum: string; // 结算单号
  settlementDate: Date; // 结算日期
  customerID: number; // 客户ID
  customerName: string; // 客户名称
  customerShortName: string; // 客户简称
  customerContact: string; // 客户联系人
  contactInfo: string; // 联系信息
  salesmanName: string; // 销售员名称
  department: string; // 部门
  settlementCurrency: string; // 结算货币
  settlementMethod: string; // 结算方式
  paymentTerm: string; // 付款条件
  invoiceAddress: string; // 开票地址
  remark: string; // 备注
  status: string; // 结算状态
  isSettled: boolean; // 是否已结算
  creationDate: Date; // 创建日期
  creator: string; // 创建者
  totalQuantity: number; // 总数量
  totalAmountWithTax: number; // 含税总金额
  totalTaxAmount: number; // 总税额
  totalAmountWithoutTax: number; // 不含税总金额
  totalDiscountAmountWithTax: number; // 折扣含税总金额
  totalDiscountTaxAmount: number; // 折扣税额总计
  totalDiscountAmountWithoutTax: number; // 折扣不含税总金额
  advancePaymentAmount: number; // 预付款金额
  actualPaymentAmount: number; // 实际付款金额
  remainingAmount: number; // 剩余金额
  files: string[]; // 文件列表
  fileRemarks: string[]; // 文件备注
  saleSettlementParts: SaleSettlementPart[]; // 结算单零件列表
}

// 销售结算单零件接口
export interface SaleSettlementPart {
  saleSettlementPartId: number; // 结算单零件ID
  saleSettlementId: number; // 结算单ID
  partNum: string; // 零件编号
  partName: string; // 零件名称
  partType: string; // 零件类型
  description: string; // 描述
  image: string; // 图片
  partUOM: string; // 单位
  deliveredQuantity: number; // 已发货数量
  settledQuantity: number; // 结算数量
  priceWithTax: number; // 含税单价
  priceWithoutTax: number; // 不含税单价
  taxRate: number; // 税率
  discount: number; // 折扣
  discountPriceWithTax: number; // 折扣含税单价
  amountWithTax: number; // 含税金额
  amountWithoutTax: number; // 不含税金额
  taxAmount: number; // 税额
  discountAmountWithTax: number; // 折扣含税金额
  discountAmountWithoutTax: number; // 折扣不含税金额
  discountTaxAmount: number; // 折扣税额
  saleOrderNum: string; // 来源销售订单号
  saleDeliverNum: string; // 来源发货单号
  deliveryDate: Date; // 发货日期
  remark: string; // 备注
}

// 销售收款单物料行接口（可为空数组）
export interface SalePaymentPart {
  salePaymentPartId: number; // 收款单物料行ID
  partNum: string; // 零件编号
  partName: string; // 零件名称
  partType: string; // 零件类型
  description: string; // 描述
  image: string; // 图片
  partUOM: string; // 单位
  quantity: number; // 数量
  priceWithTax: number; // 含税单价
  priceWithoutTax: number; // 不含税单价
  taxRate: number; // 税率
  discount: number; // 折扣
  discountPriceWithTax: number; // 折扣含税单价
  amountWithTax: number; // 含税金额
  amountWithoutTax: number; // 不含税金额
  taxAmount: number; // 税额
  discountAmountWithTax: number; // 折扣含税金额
  discountAmountWithoutTax: number; // 折扣不含税金额
  discountTaxAmount: number; // 折扣税额
  saleOrderNum: string; // 来源销售订单号
  remark: string; // 备注
}

// 销售收款单接口
export interface SalePayment {
  salePaymentId: number; // 销售收款单ID
  paymentNum: string; // 收款单号
  paymentDate: Date; // 收款日期
  customerID: number; // 客户ID
  customerName: string; // 客户名称
  customerShortName: string; // 客户简称
  customerContact: string; // 客户联系人
  contactInfo: string; // 联系方式
  salesmanName: string; // 业务员                                          
  department: string; // 部门
  receiptAmount: number; // 实收金额
  discountAmount: number; // 优惠金额
  actualAmount: number; // 应收金额
  remainingAmount: number; // 剩余金额
  remark: string; // 备注
  status: string; // 状态
  isConfirmed: boolean; // 是否确认收款
  creationDate: Date; // 创建日期
  creator: string; // 创建者
  confirmDate: Date | null; // 确认日期
  confirmer: string; // 确认人
  saleOrderNum: string; // 关联销售订单号
  salePaymentParts?: SalePaymentPart[]; // 物料行（可为空数组）

}
